//
//  ZYSocketManager.h
//  ZYWebImage
//
//  Created by wangzhipan on 2025/4/23.
//

#import <Foundation/Foundation.h>
#import "ISocketProtocol.h"

/*
 
 一般来说，直播应用信令 SDK 的长连接超时时间建议设置为：

 - 心跳间隔 ：10s
 
 在实现时，建议根据不同的网络环境动态调整心跳间隔：

 - 在 WiFi 环境下可以使用较长的心跳间隔（如 10 秒）
 - 在移动网络环境下可以使用较短的心跳间隔（如 8 秒）
 - 在检测到网络波动时，可以临时缩短心跳间隔（如 5 秒）
 同时，超时时间应该设置为心跳间隔的 3 倍左右，以便在网络波动时有足够的容错空间。
 
 
 一般来说，直播间的信令心跳间隔建议设置为：

 - 直播场景 ：10秒
 - 低功耗模式 （如后台运行时）：20秒
 */

NS_ASSUME_NONNULL_BEGIN


@interface ZYSocketManager : NSObject <ISocketProtocol>
@property (nonatomic, weak) id<ISocketDelegate> delegate;
@property (nonatomic, assign, readonly) BOOL isConnecting;
@property (nonatomic, copy, readonly) NSString *host;
@property (nonatomic, assign, readonly) NSUInteger port;
@property (nonatomic, assign) NSTimeInterval timeout;
@property (nonatomic, assign) BOOL autoReconnect;
@property (nonatomic, assign) NSUInteger maxReconnectAttempts;
@property (nonatomic, assign) NSTimeInterval reconnectDelay;
@end

NS_ASSUME_NONNULL_END
